from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.edge.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

"""
本程序主要是用于继续教育学习网站，专业课程-农业技术中的“管理心理学”课程，
实现课程视频的自动切换
"""
# 配置Edge WebDriver
edge_driver_path = r"C:/Program Files (x86)/Microsoft/edgedriver_win64/msedgedriver.exe"  # 替换为EdgeDriver的路径
service = Service(edge_driver_path)
driver = webdriver.Edge(service=service)

# 打开目标网页
url = "https://sdnydxpx.chinaedu.net/mizar/study/activity/video/study.do?userCourseId=9b020833-f7de-419d-a633-e2f07b16d50d&trainId=252bcb10-12cd-4ce4-acbe-c18182742cd5&trainCourseId=e9bec996-60b2-40b5-82ef-66bb61fe7898&courseVersionId=ee52da4e-4818-42e6-b487-ebdd61d895d3&courseTopicCode=001&courseActivityId=4caa27b3-bd25-49ad-b46c-969b5a614678"
driver.get(url)

# 提示用户完成登录操作
print("请在浏览器中完成登录操作。")
user_input = input("登录完成后，请输入 'yes' 继续运行程序，输入 'no' 退出程序： ").strip().lower()

if user_input != "yes":
    print("程序已退出。")
    driver.quit()
else:
    print("开始运行程序...")

    try:
        while True:
            # 等待视频元素加载完成
            video_element = WebDriverWait(driver, 10).until(
                EC.presence_of_element_located((By.ID, "video_div_video_html5_api"))  # 使用视频的ID进行定位
            )

            # 检测视频是否停止播放
            while True:
                time.sleep(1)  # 每秒检查一次
                if video_element.get_attribute("ended") == "true":
                    print("视频已停止播放，点击下一页按钮")
                    break

            # 点击下一页按钮
            next_page_button = WebDriverWait(driver, 10).until(
                EC.element_to_be_clickable((By.CSS_SELECTOR, "i.fa-chevron-right"))  # 使用CSS选择器定位按钮
            )
            next_page_button.click()

            # 等待新页面加载完成
            WebDriverWait(driver, 10).until(
                EC.presence_of_element_located((By.ID, "video_div_video_html5_api"))  # 等待新页面的视频元素加载
            )

            # 点击新页面中的播放按钮
            play_button = WebDriverWait(driver, 10).until(
                EC.element_to_be_clickable((By.CSS_SELECTOR, "div.vjs-big-play-button"))  # 使用CSS选择器定位播放按钮
            )
            play_button.click()
            print("已点击播放按钮，继续监控视频播放状态")

    except Exception as e:
        print(f"发生错误：{e}")
    finally:
        driver.quit()